package com.sixbro.shiro.service.rbac;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sixbro.shiro.domain.entity.SysUser;
import com.sixbro.shiro.domain.vo.request.LoginRequestVO;
import com.sixbro.shiro.domain.vo.request.RegisterRequestVO;
import com.sixbro.shiro.domain.vo.request.UpdatePasswordRequestVO;
import com.sixbro.shiro.domain.vo.response.LoginResponseVO;
import com.sixbro.shiro.domain.vo.response.UserOwnRoleResponseVO;

import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @Author: Mr.Lu
 * @Since: 2020/6/19 14:22
 */
public interface UserService extends IService<SysUser> {

    String register(RegisterRequestVO vo);

    LoginResponseVO login(LoginRequestVO vo);

    void updateUserInfo(SysUser vo, String operationId);


    IPage<SysUser> pageInfo(SysUser vo);

    SysUser detailInfo(String userId);

    void addUser(SysUser vo);

    void logout();

    void updatePwd(UpdatePasswordRequestVO vo, String userId);

    List<SysUser> getUserListByDeptIds(List<String> deptIds);

    void deletedUsers(List<String> userIds,String operationId);

    UserOwnRoleResponseVO getUserOwnRole(String userId);

    void setUserOwnRole(String userId,List<String> roleIds);

    void updateUserInfoMy(SysUser vo, String userId);
}
